テクニカルサポートの調査について事例付きで解説してみた
アノテーション、テクニカルサポートチームの村上です。
本ブログでは、いただいたお問い合わせに対して、テクニカルサポートがどのように考え検証をしているかについてフォーカスを当ててみました。
あまり知られていないテクニカルサポート業務について、本ブログを通して少しでも知っていただけたら嬉しいです。
お問い合わせタイトル
新規トピック作成時に "配信ステータスのログ記録" オプションを設定すると、InvalidParameter エラーが発生する理由を教えてください。
困っていた内容
Amazon SNS でトピックの新規作成時に、オプションである「配信ステータスのログ記録」を設定しました。
設定後、「トピックを作成する」ボタンをクリックすると、以下のエラーが発生しました。
マネジメントコンソール上でこのエラーが発生した後に、再度「トピックを作成する」ボタンをクリックすると、正常にトピックが作成できます。
1 回目のエラーが表示されてから設定等の変更をしなくても、再試行で正常にトピックが作成できた理由を教えてください。
まずは結論
トピック作成メニューの中で IAM ロールを新規作成した場合、IAM ロール作成直後に「トピックを作成する」ボタンを押下すると本エラーが発生します。
IAM はグローバルリソースの為、作成してから実際に利用可能となるまで若干のタイムラグが発生する可能性があります。
世界中のデータセンター内のコンピューターを介してアクセスされるサービスとして、IAM は、結果整合性と呼ばれる分散コンピューティングモデルを採用しています。IAM (または他の AWS サービス) で行った変更は、属性ベースのアクセスコントロール (ABAC) で使用されているタグを含め、すべての可能なエンドポイントから認識されるまでに時間がかかります。
調査してみた
1.社内ナレッジや AWS ドキュメント等を調査
あまり見ないような内容のお問い合わせでも、過去に他メンバーが対応して回答をしているケースがあります。
社内ナレッジは、複数キーワードでの検索も可能となっており、お問い合わせいただいたエラーに関連する情報が無いかを調べます。
社内ナレッジで見つからない場合は、AWS ドキュメントや AWS ナレッジに関連するエラーが無いかを調べます。
なお、チーム内外にお問い合わせいただいた分野やサービスに詳しいメンバーがいる場合は、slack でお問い合わせ内容に対する知見が無いかを確認することもあります。
本お問い合わせでは、有力な情報が見つからなかった為、自分で検証をする方針にしました。
2.お問い合わせ状況が再現可能か
まずは、検証環境において、同一の設定でトピックを新規作成してみて、同じエラーを発生させることができるか試してみました。
トピックのタイプにスタンダードを選択し、トピックの名前を "test-topic" としました。
配信ステータスのログ記録オプションに、Lambda を指定して、IAM ロールを新規作成します。
なお、お問い合わせの際にいただいた情報からは IAM ロールを新規で作成した、または既存 IAM ロールの利用であったかは不明でしたが、検証環境下に既存 IAM ロールが無かった為、とりあえず新規 IAM ロールを作成してお問い合わせのエラーが再現可能か試してみることにしました。
下記の設定内容を選んでから、"新しいロールの作成" ボタンを押下します。
ブラウザで新規のタブが開き、必要となる IAM ロール 2 つが入力されている状態だったので、そのまま画面右下の "許可" ボタンを押下しました。
新しく開いたブラウザのタブが閉じ、トピック作成画面への戻ったので、このまま "トピックの作成" ボタンを押下して新規トピックを作成しました。
すると、トピックの作成に失敗し、検証環境下においても、お問い合わせいただいたエラーを再現することができました。
エラー発生後に設定の変更等を実施しなくても、再試行すれば正常にトピックを作成することができるか確認してみます。
エラーが表示されたままの画面で、再度 "トピックの作成" ボタンを押下します。
今度は、トピックを正常に作成することができました。
お問い合わせいただいた状況と同じく、設定の修正等をしなくても再試行するとトピックを正常に作成できることを確認できました。
3.テクサポ的考察
エラーメッセージからも、新規で作成した IAM ロール SNSSuccessFeedback に関連するエラーのようですが、手順に従い AWS から提供された IAM ロールを利用している為、ロール自体には問題が無さそうです。
ここで、以前に IAM の変更をアプリケーション内で実装されていたお客様がいて、IAM 変更直後の処理にエラーが発生するというお問い合わせがあったことを思い出しました。
この辺りは、テクサポとしてどれだけ経験値を積んでいるかによってアプローチが変わってくるかと思います。
調査方針として、Role 作成後の時間経過により本エラーの発生状況が変わるか試してみることにしました。
4.Role 作成後からの時間を計ってトピックの作成をしてみる
下画面の "許可" ボタンを押下(IAM ロールを作成)
30 秒後に "トピックの作成" ボタンを押下する
1 回目のトピック作成でもエラーが発生せずに、トピックの作成に成功しました。
どうやら、Role 作成後の経過時間に依存して本エラーが発生している可能性が高くなってきました。
以下、IAM ロール作成後から "トピックの作成" ボタンを押下するまでの時間を徐々に減らしながら、一定時間以下になるとエラーが発生するか調べみました。
IAM ロール作成後約 15 秒後にトピックの作成ボタンを押下した場合
トピックの作成が 1 回目で成功
IAM ロール作成後約 7 秒後にトピックの作成ボタンを押下した場合
トピックの作成が 1 回目は失敗
再試行するとトピックの作成に成功
30 秒、15 秒、7 秒と IAM ロール作成後の時間を変化させてみた結果、どうやら IAM ロール作成後の時間経過に依存して本エラーが発生するという仮説は正しいようです。
5.トピックに既存の IAM ロールを利用してみる
最後に、トピック作成時に既存の IAM ロールとして、SNSSuccessFeedback、SNSFailureFeedback、の ARN を指定した場合についても確認しておきます。
既存の IAM ロールを利用した場合は、1 回目から問題無くトピックの作成に成功しました。
6.ドキュメントで裏付けをとる
検証結果の裏付けとなる記述を IAM のドキュメント内から探し出します。
ドキュメントの中で、お客様へご確認していただきたい部分を何行か抜粋してご案内します。
世界中のデータセンター内のコンピューターを介してアクセスされるサービスとして、IAM は、結果整合性と呼ばれる分散コンピューティングモデルを採用しています。IAM (または他の AWS サービス) で行った変更は、属性ベースのアクセスコントロール (ABAC) で使用されているタグを含め、すべての可能なエンドポイントから認識されるまでに時間がかかります。
以上の調査結果をもとに、お問い合わせいただいたエラーは、IAM ロール作成直後に "トピックの作成" ボタンを押下した為に発生したエラーであるとお客様へお伝えしました。
まとめ
本ブログでは、お問い合わせいただいたご質問に対して回答するにあたり、テクニカルサポートとしてどのように考え検証しているかをご紹介してみました。
本ブログを読んで、テクニカルサポートに興味が湧いた方は、ぜひ弊社テクニカルサポートチームへの応募をお待ちしております。
アノテーション株式会社 ではテクニカルサポートチームをはじめ、複数のチームでメンバー募集を行っています。
この記事がどなたかのお役に立てば幸いです。